package com.aifast.common.base;

import cn.hutool.core.util.StrUtil;
import com.aifast.common.global.Const;
import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;

import java.io.Serializable;

/**
 * 通用继承类 id为自增 创建人和更新人只保留姓名的字符串
 *
 * @author fujian
 * @date 2021/12/29 22:29
 */
@Data
public class BaseEntity implements Serializable {

    private static final long serialVersionUID = -3165436653870867187L;
    /** pk */
    @ExcelProperty("ID")
    @TableId(value = "id",type = IdType.AUTO)
    private Integer id;

    /**
     * 创建人
     */
    @ExcelProperty("创建人")
    @TableField(fill = FieldFill.INSERT)
    private String createBy;
    /**
     * 创建时间
     */
    @ExcelProperty("创建时间")
    @TableField(fill = FieldFill.INSERT)
    private String createTime;
    /**
     * 更新人
     */
    @ExcelProperty("更新人")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private String updateBy;
    /**
     * 更新时间
     */
    @ExcelProperty("更新时间")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private String updateTime;
    /**
     * 逻辑删除
     */
    @ExcelIgnore
    @TableLogic
    private boolean deleted;

    /**
     * 关键字查询
     */
    @ExcelIgnore
    @TableField(exist = false)
    private String searchValue;


    /**
     * 获取起始时间拼接字符串
     *
     * @param dateStr 时间范围
     * @return 2022-10-10 00:00:00
     */
    public String getBeginTime(String dateStr) {
        if (StrUtil.isBlank(dateStr)) {
            return Const.EMPTY;
        }
        return StrUtil.join(Const.SYMBOL_SPACE, dateStr.substring(0, 10), "00:00:00");
    }

    /**
     * 获取结束时间拼接字符串
     *
     * @param dateStr 时间范围
     * @return 2022-10-10 23:59:59
     */
    public String getEndTime(String dateStr) {
        if (StrUtil.isBlank(dateStr)) {
            return Const.EMPTY;
        }
        return StrUtil.join(Const.SYMBOL_SPACE, dateStr.substring(13), "23:59:59");
    }

}
